<?php

namespace app\admin\controller;

/**
 * 系统核心类
 * 含有（模块初始化，配置初始化，权限控制）
 */
class Publics extends AdminCore{
	/**
	 * 默认页面
	 * 跳转到 login方法
	 */
	public function index() {
		$this->redirect ( config ( 'auth_gateway_login' ) );
	}
	
	/**
	 * 登陆方法
	 */
	public function login() {
		if (request ()->isPost ()) {
			// 提交数据
			// 判断账户/密码/验证码是否为空
			$account = input ( 'account', '' );
			$password = input ( 'password', '' );
			$code = input ( 'code', '' );
			if ($account == '') {
				return _Code ( '101', '账户不能为空' );
			}
			if ($password == '') {
				return _Code ( '101', '密码不能为空' );
			}
			if ($code == '') {
				return _Code ( '101', '验证码不能为空' );
			}
			// 验证验证码
			$_Verify = new \sys\Verify ();
			if (! $_Verify->check ( $code, md5 ( 'admin/public/login' ) )) {
				return _Code ( '102', '验证码错误' );
			}
			// 获取User_logic
			$_User_logic = model ( 'app\common\logic\User' );
			// 登陆系统
			if ($_User_logic->_Login ( $account, $password )) {
				return _Code ( '200', '登陆成功', url ( config ( 'auth_gateway_index' ) ) );
			} else {
				return _Code ( '201', $_User_logic->getError () );
			}
		} else {
			if (_Is_Login ()) {
				// 获取系统默认网关
				$this->redirect ( config ( 'auth_gateway_index' ) );
			} else {
				// 获取登陆页面
				return view ();
			}
		}
	}
	public function logout() {
		// 获取User_logic
		$_User_logic = model ( 'app\admin\logic\User' );
		// 登陆系统
		if ($_User_logic->_Logout ()) {
			$this->success ( '退出成功',url(config('auth_gateway_login')) );
		} else {
			$this->error($_User_logic->getError (), url(config('auth_gateway_login')));
		}
	}
	
	/**
	 * 验证码
	 */
	public function verify() {
		$_Cfg = [ 
				'fontSize' => 30, // 验证码字体大小
				'length' => 4, // 验证码位数
				'useNoise' => false  // 关闭验证码杂点
		];
		$_Verify = new \sys\Verify ( $_Cfg );
		$_Verify->entry ( md5 ( 'admin/public/login' ) );
	}
	
	public function config() {
		return view ();
	}
}